package com.tax.infrastructure.statemachine;

/**
 * Visitor
 */
public interface Visitor {

    char LF='\n';

    /**
     * visitable the element to be visited
     * @param visible
     * @return
     */
    String visitOnEntry(StateMachine<?,?,?> visible);

    /**
     * visitable the element to be visited
     * @param visible
     * @return
     */
    String visitOnExit(StateMachine<?,?,?> visible);

    /**
     * visitable the element to be visited
     * @param visible
     * @return
     */
    String visitOnEntry(State<?,?,?> visible);

    /**
     * visitable the element to be visited
     * @param visible
     * @return
     */
    String visitOnExit(State<?,?,?> visible);
}
